iT邦幫忙

2025 iThome 鐵人賽

DAY 2
0
自我挑戰組

課程公告與課表管理系統系列 第 3

Day 3 – 建立資料表與初始種子資料

  • 分享至 

  • xImage
  •  
  1. 今日目標

今天的主要工作是將昨天規劃好的資料庫 Schema 實際落地,並建立初始的資料表與基礎種子資料(Roles、Users)。這一步完成後,後端就能開始開發 API 與進行 CRUD 測試,正式進入系統功能的開發階段。

  1. 完成項目
    (1) 建立資料表

使用 mysql2 與 SQL 腳本,在資料庫 classhub 中建立以下資料表:

Roles:系統角色 (admin / student / instructor)

Users:使用者基本資訊與登入帳號

Cohorts:班級/期別

Enrollments:學員與班級對應關係

Sessions:每一堂課的安排

SessionChanges:課程異動歷史

Announcements / AnnouncementTargets:公告與投放對象

Notifications / ReadReceipts:通知發送與已讀紀錄

Instructors / Rooms:講師與教室資訊

RecurringSessions / SessionOccurrences:重複課程規則與展開課次

Attachments / Tags / EntityTags:附件與標籤系統

(以上表格架構已事先設計好,今天正式匯入並建立)

(2) 插入初始資料

在 Roles 表中插入預設角色:

admin

student

instructor

在 Users 表中插入一筆管理者帳號,供後續 API 開發與測試使用。

(3) 程式驗證

使用 npx ts-node src/test-db-connection.ts 測試資料庫是否正常

驗證所有資料表均已建立成功

測試新增一筆使用者資料並查詢,確認 CRUD 正常運作

  1. 收穫與反思

完成完整資料庫 Schema 的建立,讓專案有了堅實的資料基礎

預先建立的角色與管理員帳號,能讓 API 開發與權限測試更順利

過程中發現,將「課程異動歷史」、「通知發送紀錄」單獨抽出獨立表格,可以讓系統在未來延伸(例如 LINE Notify 或 Web Push)時更具彈性
https://ithelp.ithome.com.tw/upload/images/20250817/20151652KMH9GD6s8I.png

https://ithelp.ithome.com.tw/upload/images/20250817/20151652Se2E3ihLoy.png


上一篇
Day 2 – 開發環境初始化與資料庫連線測試
系列文
課程公告與課表管理系統3
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言